//
//  QXConfiguration.h
//  Pods
//
//  Created by Qianxia on 2016/12/29.
//
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

/**
 业务类型
 
 - BusinessTypeTaxi: 出租车
 - BusinessTypeSpecialTrain: 专车
 - BusinessTypeCarPooling: 跨城拼车
 */
typedef NS_ENUM(NSInteger, QXBusinessType) {
    QXBusinessTypeTaxi,
    QXBusinessTypeSpecialTrain,
    QXBusinessTypeCarPooling
};

/// 应用Id，由服务器分配
FOUNDATION_EXPORT NSString * const QXAppId;

/// 请求key，由服务器分配
FOUNDATION_EXPORT NSString * const QXRequestKey;

/// 用户Token Key
FOUNDATION_EXPORT NSString * const QXUserTokenKey;

/// 用户UUID
FOUNDATION_EXPORT NSString * const QXUserUUIDKey;

/// 用户所在的城市
FOUNDATION_EXPORT NSString * const QXUserCityKey;

/// 第一次启动应用
FOUNDATION_EXPORT NSString * const QXFirstLaunchKey;

/// 高德地图Key
FOUNDATION_EXPORT NSString * const AMap_AppKey;

/// 友盟APPKey
FOUNDATION_EXPORT NSString * const UMENG_APPKEY;

/// 极光推送证书
FOUNDATION_EXPORT NSString * const JPush_AppKey;

/// 微信AppId
FOUNDATION_EXPORT NSString * const WXApId;

/// 应用名称
FOUNDATION_EXPORT NSString * const QXAppName;

/// 首页地图中心点是否隐藏
FOUNDATION_EXPORT NSString * const QXHome_MapViewCenterImageView_Hidden_NotificationKey;

/// 首页是否显示菜单
FOUNDATION_EXPORT NSString * const QXHome_MenuView_Hidden_NotificationKey;

/// 首页标题
FOUNDATION_EXPORT NSString * const QXHome_TitleText_NotificationKey;

/// 返回按钮时间通知
FOUNDATION_EXPORT NSString * const QXHome_BackAction_NotificationKey;

/// 切换业务类型
FOUNDATION_EXPORT NSString * const QXHome_BusinessType_Change_NotificationKey;

#pragma mark - 订单子状态
/// 乘客发单、等待应答
FOUNDATION_EXPORT NSInteger const WAIT_REPLY;
/// 等待接驾－预约订单
FOUNDATION_EXPORT NSInteger const WAIT_BEGIN_APPOINTMENT;
/// 等待接驾-已出发未到达"上车地点"
FOUNDATION_EXPORT NSInteger const WAIT_ARRIVE_ORIGIN;
/// 等待接驾-已到达"上车地点"
FOUNDATION_EXPORT NSInteger const WATI_PASSENGER_GET_ON;
/// 行程开始
FOUNDATION_EXPORT NSInteger const DEPART;
/// 到达目的地
FOUNDATION_EXPORT NSInteger const ARRIVE_DEST;
/// 司机确认费用，等待乘客支付
FOUNDATION_EXPORT NSInteger const FARE_CONFIRM;
///乘客取消订单，待支付取消费用（有取消费用的情况）
FOUNDATION_EXPORT NSInteger const CANCEL_BY_PASSENGER_NEED_PAY;
/// 已完成，待评价
FOUNDATION_EXPORT NSInteger const COMPLETE_WITHOUT_EVALUATE;
/// 已完成，已评价
FOUNDATION_EXPORT NSInteger const COMPLETE;
/// 应答前取消订单（乘客）
FOUNDATION_EXPORT NSInteger const CANCEL_BEFORE_ACCEPT;
/// 乘客取消（行程确定后、司机未到达）
FOUNDATION_EXPORT NSInteger const CANCEL_BY_PASSENGER_BEFORE_ARRIVE_START;
/// 乘客取消（行程确定后、司机到达）
FOUNDATION_EXPORT NSInteger const CANCEL_BY_PASSENGER_AFTER_ARRIVE_START;
/// 司机取消订单
FOUNDATION_EXPORT NSInteger const CANCEL_BY_DRIVER;
/// 后台取消
FOUNDATION_EXPORT NSInteger const CANCEL_BY_SYSTEM;
/// 无人抢单，订单超时
FOUNDATION_EXPORT NSInteger const CANCEL_NO_ANSWER;

/* 拼车订单，增加状态 */
///司机发单、拼车中
FOUNDATION_EXPORT NSInteger const CARPOOL_PUBLISH_BY_DRIVER;
///司机拼车中（不满员）
FOUNDATION_EXPORT NSInteger const CARPOOL_NOT_FULL;
///司机拼车中（满员）
FOUNDATION_EXPORT NSInteger const CARPOOL_FULL;

/* 跨城拼车，订单状态变化 */
// 101(司机发单、拼车中) -> 210(行程开始、未接到所有乘客) -> 300(接到所有乘客、未将所有乘客送达目的地) -> 600(所有乘客送达，已完成)

@protocol HomeViewActionDelegate <NSObject>

- (void)popViewController;

@end

@interface QXConfiguration : NSObject

#pragma mark - 颜色

/**
 主色调

 @return #3E88F5
 */
+ (nullable UIColor *)mainColor;

/**
 起点颜色

 @return #F99358
 */
+ (nullable UIColor *)originColor;

/**
 终点颜色

 @return #22CEDB
 */
+ (nullable UIColor *)destinationColor;

/**
 字体色

 @return #4F5A67
 */
+ (nullable UIColor *)fontColor;

/**
 子标题字体色

 @return #9EA7B1
 */
+ (nullable UIColor *)subFontColor;


/**
 占位符颜色

 @return #D0D5D9
 */
+ (nullable UIColor *)placeholderColor;

/**
 分割线颜色
 
 @return #E4E7EA
 */
+ (nullable UIColor *)dividingLineColor;

/**
 背景颜色

 @return #F3F4F6
 */
+ (nullable UIColor *)backgroundColor;


/**
 按钮颜色

 @return #4F5A67
 */
+ (nullable UIColor *)buttonColor;

/**
 按钮点击颜色

 @return #3F4A57
 */
+ (nullable UIColor *)buttonHighlightedColor;

/**
 按钮第二个颜色

 @return #F99358
 */
+ (nullable UIColor *)buttonSecondColor;

/**
 按钮第二个点击颜色

 @return #F28445
 */
+ (nullable UIColor *)buttonSecondHighlightedColor;

#pragma mark - 主机

/**
 主机地址如 www.baidu.com

 @return 主机地址
 */
+ (NSString *)apiBaseUrlString;

/**
 长连接
 
 @return 长连接
 */
+ (NSString *)socketBaseUrlString;

#pragma mark - 配置

/**
 极光推送是否生产环境.

 @return 如果为开发状态,设置为 NO; 如果为生产状态,应改为 YES.
 */
+ (BOOL)jpushIsProduction;

#pragma mark - 资源

/**
 获取图片

 @param imageName 图片名称
 @return 图片
 */
+ (UIImage *)imageWithName:(NSString *)name;

@end
